package com.ruoyi.manage.db.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SbaAudioFilesExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SbaAudioFilesExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAudioFileIdIsNull() {
            addCriterion("audio_file_id is null");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdIsNotNull() {
            addCriterion("audio_file_id is not null");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdEqualTo(String value) {
            addCriterion("audio_file_id =", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdNotEqualTo(String value) {
            addCriterion("audio_file_id <>", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdGreaterThan(String value) {
            addCriterion("audio_file_id >", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdGreaterThanOrEqualTo(String value) {
            addCriterion("audio_file_id >=", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdLessThan(String value) {
            addCriterion("audio_file_id <", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdLessThanOrEqualTo(String value) {
            addCriterion("audio_file_id <=", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdLike(String value) {
            addCriterion("audio_file_id like", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdNotLike(String value) {
            addCriterion("audio_file_id not like", value, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdIn(List<String> values) {
            addCriterion("audio_file_id in", values, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdNotIn(List<String> values) {
            addCriterion("audio_file_id not in", values, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdBetween(String value1, String value2) {
            addCriterion("audio_file_id between", value1, value2, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andAudioFileIdNotBetween(String value1, String value2) {
            addCriterion("audio_file_id not between", value1, value2, "audioFileId");
            return (Criteria) this;
        }

        public Criteria andTitleIsNull() {
            addCriterion("title is null");
            return (Criteria) this;
        }

        public Criteria andTitleIsNotNull() {
            addCriterion("title is not null");
            return (Criteria) this;
        }

        public Criteria andTitleEqualTo(String value) {
            addCriterion("title =", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotEqualTo(String value) {
            addCriterion("title <>", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThan(String value) {
            addCriterion("title >", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThanOrEqualTo(String value) {
            addCriterion("title >=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThan(String value) {
            addCriterion("title <", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThanOrEqualTo(String value) {
            addCriterion("title <=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLike(String value) {
            addCriterion("title like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotLike(String value) {
            addCriterion("title not like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleIn(List<String> values) {
            addCriterion("title in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotIn(List<String> values) {
            addCriterion("title not in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleBetween(String value1, String value2) {
            addCriterion("title between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotBetween(String value1, String value2) {
            addCriterion("title not between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andArtistIsNull() {
            addCriterion("artist is null");
            return (Criteria) this;
        }

        public Criteria andArtistIsNotNull() {
            addCriterion("artist is not null");
            return (Criteria) this;
        }

        public Criteria andArtistEqualTo(String value) {
            addCriterion("artist =", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotEqualTo(String value) {
            addCriterion("artist <>", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistGreaterThan(String value) {
            addCriterion("artist >", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistGreaterThanOrEqualTo(String value) {
            addCriterion("artist >=", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLessThan(String value) {
            addCriterion("artist <", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLessThanOrEqualTo(String value) {
            addCriterion("artist <=", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLike(String value) {
            addCriterion("artist like", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotLike(String value) {
            addCriterion("artist not like", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistIn(List<String> values) {
            addCriterion("artist in", values, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotIn(List<String> values) {
            addCriterion("artist not in", values, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistBetween(String value1, String value2) {
            addCriterion("artist between", value1, value2, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotBetween(String value1, String value2) {
            addCriterion("artist not between", value1, value2, "artist");
            return (Criteria) this;
        }

        public Criteria andAlbumIsNull() {
            addCriterion("album is null");
            return (Criteria) this;
        }

        public Criteria andAlbumIsNotNull() {
            addCriterion("album is not null");
            return (Criteria) this;
        }

        public Criteria andAlbumEqualTo(String value) {
            addCriterion("album =", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumNotEqualTo(String value) {
            addCriterion("album <>", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumGreaterThan(String value) {
            addCriterion("album >", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumGreaterThanOrEqualTo(String value) {
            addCriterion("album >=", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumLessThan(String value) {
            addCriterion("album <", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumLessThanOrEqualTo(String value) {
            addCriterion("album <=", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumLike(String value) {
            addCriterion("album like", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumNotLike(String value) {
            addCriterion("album not like", value, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumIn(List<String> values) {
            addCriterion("album in", values, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumNotIn(List<String> values) {
            addCriterion("album not in", values, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumBetween(String value1, String value2) {
            addCriterion("album between", value1, value2, "album");
            return (Criteria) this;
        }

        public Criteria andAlbumNotBetween(String value1, String value2) {
            addCriterion("album not between", value1, value2, "album");
            return (Criteria) this;
        }

        public Criteria andGenreIsNull() {
            addCriterion("genre is null");
            return (Criteria) this;
        }

        public Criteria andGenreIsNotNull() {
            addCriterion("genre is not null");
            return (Criteria) this;
        }

        public Criteria andGenreEqualTo(String value) {
            addCriterion("genre =", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreNotEqualTo(String value) {
            addCriterion("genre <>", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreGreaterThan(String value) {
            addCriterion("genre >", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreGreaterThanOrEqualTo(String value) {
            addCriterion("genre >=", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreLessThan(String value) {
            addCriterion("genre <", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreLessThanOrEqualTo(String value) {
            addCriterion("genre <=", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreLike(String value) {
            addCriterion("genre like", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreNotLike(String value) {
            addCriterion("genre not like", value, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreIn(List<String> values) {
            addCriterion("genre in", values, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreNotIn(List<String> values) {
            addCriterion("genre not in", values, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreBetween(String value1, String value2) {
            addCriterion("genre between", value1, value2, "genre");
            return (Criteria) this;
        }

        public Criteria andGenreNotBetween(String value1, String value2) {
            addCriterion("genre not between", value1, value2, "genre");
            return (Criteria) this;
        }

        public Criteria andFilePathIsNull() {
            addCriterion("file_path is null");
            return (Criteria) this;
        }

        public Criteria andFilePathIsNotNull() {
            addCriterion("file_path is not null");
            return (Criteria) this;
        }

        public Criteria andFilePathEqualTo(String value) {
            addCriterion("file_path =", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathNotEqualTo(String value) {
            addCriterion("file_path <>", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathGreaterThan(String value) {
            addCriterion("file_path >", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathGreaterThanOrEqualTo(String value) {
            addCriterion("file_path >=", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathLessThan(String value) {
            addCriterion("file_path <", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathLessThanOrEqualTo(String value) {
            addCriterion("file_path <=", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathLike(String value) {
            addCriterion("file_path like", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathNotLike(String value) {
            addCriterion("file_path not like", value, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathIn(List<String> values) {
            addCriterion("file_path in", values, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathNotIn(List<String> values) {
            addCriterion("file_path not in", values, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathBetween(String value1, String value2) {
            addCriterion("file_path between", value1, value2, "filePath");
            return (Criteria) this;
        }

        public Criteria andFilePathNotBetween(String value1, String value2) {
            addCriterion("file_path not between", value1, value2, "filePath");
            return (Criteria) this;
        }

        public Criteria andFileSizeIsNull() {
            addCriterion("file_size is null");
            return (Criteria) this;
        }

        public Criteria andFileSizeIsNotNull() {
            addCriterion("file_size is not null");
            return (Criteria) this;
        }

        public Criteria andFileSizeEqualTo(Long value) {
            addCriterion("file_size =", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotEqualTo(Long value) {
            addCriterion("file_size <>", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeGreaterThan(Long value) {
            addCriterion("file_size >", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeGreaterThanOrEqualTo(Long value) {
            addCriterion("file_size >=", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeLessThan(Long value) {
            addCriterion("file_size <", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeLessThanOrEqualTo(Long value) {
            addCriterion("file_size <=", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeIn(List<Long> values) {
            addCriterion("file_size in", values, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotIn(List<Long> values) {
            addCriterion("file_size not in", values, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeBetween(Long value1, Long value2) {
            addCriterion("file_size between", value1, value2, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotBetween(Long value1, Long value2) {
            addCriterion("file_size not between", value1, value2, "fileSize");
            return (Criteria) this;
        }

        public Criteria andBitRateIsNull() {
            addCriterion("bit_rate is null");
            return (Criteria) this;
        }

        public Criteria andBitRateIsNotNull() {
            addCriterion("bit_rate is not null");
            return (Criteria) this;
        }

        public Criteria andBitRateEqualTo(Integer value) {
            addCriterion("bit_rate =", value, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateNotEqualTo(Integer value) {
            addCriterion("bit_rate <>", value, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateGreaterThan(Integer value) {
            addCriterion("bit_rate >", value, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateGreaterThanOrEqualTo(Integer value) {
            addCriterion("bit_rate >=", value, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateLessThan(Integer value) {
            addCriterion("bit_rate <", value, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateLessThanOrEqualTo(Integer value) {
            addCriterion("bit_rate <=", value, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateIn(List<Integer> values) {
            addCriterion("bit_rate in", values, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateNotIn(List<Integer> values) {
            addCriterion("bit_rate not in", values, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateBetween(Integer value1, Integer value2) {
            addCriterion("bit_rate between", value1, value2, "bitRate");
            return (Criteria) this;
        }

        public Criteria andBitRateNotBetween(Integer value1, Integer value2) {
            addCriterion("bit_rate not between", value1, value2, "bitRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateIsNull() {
            addCriterion("sample_rate is null");
            return (Criteria) this;
        }

        public Criteria andSampleRateIsNotNull() {
            addCriterion("sample_rate is not null");
            return (Criteria) this;
        }

        public Criteria andSampleRateEqualTo(Integer value) {
            addCriterion("sample_rate =", value, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateNotEqualTo(Integer value) {
            addCriterion("sample_rate <>", value, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateGreaterThan(Integer value) {
            addCriterion("sample_rate >", value, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateGreaterThanOrEqualTo(Integer value) {
            addCriterion("sample_rate >=", value, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateLessThan(Integer value) {
            addCriterion("sample_rate <", value, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateLessThanOrEqualTo(Integer value) {
            addCriterion("sample_rate <=", value, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateIn(List<Integer> values) {
            addCriterion("sample_rate in", values, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateNotIn(List<Integer> values) {
            addCriterion("sample_rate not in", values, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateBetween(Integer value1, Integer value2) {
            addCriterion("sample_rate between", value1, value2, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andSampleRateNotBetween(Integer value1, Integer value2) {
            addCriterion("sample_rate not between", value1, value2, "sampleRate");
            return (Criteria) this;
        }

        public Criteria andChannelsIsNull() {
            addCriterion("channels is null");
            return (Criteria) this;
        }

        public Criteria andChannelsIsNotNull() {
            addCriterion("channels is not null");
            return (Criteria) this;
        }

        public Criteria andChannelsEqualTo(Integer value) {
            addCriterion("channels =", value, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsNotEqualTo(Integer value) {
            addCriterion("channels <>", value, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsGreaterThan(Integer value) {
            addCriterion("channels >", value, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsGreaterThanOrEqualTo(Integer value) {
            addCriterion("channels >=", value, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsLessThan(Integer value) {
            addCriterion("channels <", value, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsLessThanOrEqualTo(Integer value) {
            addCriterion("channels <=", value, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsIn(List<Integer> values) {
            addCriterion("channels in", values, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsNotIn(List<Integer> values) {
            addCriterion("channels not in", values, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsBetween(Integer value1, Integer value2) {
            addCriterion("channels between", value1, value2, "channels");
            return (Criteria) this;
        }

        public Criteria andChannelsNotBetween(Integer value1, Integer value2) {
            addCriterion("channels not between", value1, value2, "channels");
            return (Criteria) this;
        }

        public Criteria andDurationIsNull() {
            addCriterion("duration is null");
            return (Criteria) this;
        }

        public Criteria andDurationIsNotNull() {
            addCriterion("duration is not null");
            return (Criteria) this;
        }

        public Criteria andDurationEqualTo(Float value) {
            addCriterion("duration =", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationNotEqualTo(Float value) {
            addCriterion("duration <>", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationGreaterThan(Float value) {
            addCriterion("duration >", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationGreaterThanOrEqualTo(Float value) {
            addCriterion("duration >=", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationLessThan(Float value) {
            addCriterion("duration <", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationLessThanOrEqualTo(Float value) {
            addCriterion("duration <=", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationIn(List<Float> values) {
            addCriterion("duration in", values, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationNotIn(List<Float> values) {
            addCriterion("duration not in", values, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationBetween(Float value1, Float value2) {
            addCriterion("duration between", value1, value2, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationNotBetween(Float value1, Float value2) {
            addCriterion("duration not between", value1, value2, "duration");
            return (Criteria) this;
        }

        public Criteria andAddedOnIsNull() {
            addCriterion("added_on is null");
            return (Criteria) this;
        }

        public Criteria andAddedOnIsNotNull() {
            addCriterion("added_on is not null");
            return (Criteria) this;
        }

        public Criteria andAddedOnEqualTo(Date value) {
            addCriterion("added_on =", value, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnNotEqualTo(Date value) {
            addCriterion("added_on <>", value, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnGreaterThan(Date value) {
            addCriterion("added_on >", value, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnGreaterThanOrEqualTo(Date value) {
            addCriterion("added_on >=", value, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnLessThan(Date value) {
            addCriterion("added_on <", value, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnLessThanOrEqualTo(Date value) {
            addCriterion("added_on <=", value, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnIn(List<Date> values) {
            addCriterion("added_on in", values, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnNotIn(List<Date> values) {
            addCriterion("added_on not in", values, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnBetween(Date value1, Date value2) {
            addCriterion("added_on between", value1, value2, "addedOn");
            return (Criteria) this;
        }

        public Criteria andAddedOnNotBetween(Date value1, Date value2) {
            addCriterion("added_on not between", value1, value2, "addedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnIsNull() {
            addCriterion("updated_on is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnIsNotNull() {
            addCriterion("updated_on is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnEqualTo(Date value) {
            addCriterion("updated_on =", value, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnNotEqualTo(Date value) {
            addCriterion("updated_on <>", value, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnGreaterThan(Date value) {
            addCriterion("updated_on >", value, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnGreaterThanOrEqualTo(Date value) {
            addCriterion("updated_on >=", value, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnLessThan(Date value) {
            addCriterion("updated_on <", value, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnLessThanOrEqualTo(Date value) {
            addCriterion("updated_on <=", value, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnIn(List<Date> values) {
            addCriterion("updated_on in", values, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnNotIn(List<Date> values) {
            addCriterion("updated_on not in", values, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnBetween(Date value1, Date value2) {
            addCriterion("updated_on between", value1, value2, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andUpdatedOnNotBetween(Date value1, Date value2) {
            addCriterion("updated_on not between", value1, value2, "updatedOn");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathIsNull() {
            addCriterion("cover_image_path is null");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathIsNotNull() {
            addCriterion("cover_image_path is not null");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathEqualTo(String value) {
            addCriterion("cover_image_path =", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathNotEqualTo(String value) {
            addCriterion("cover_image_path <>", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathGreaterThan(String value) {
            addCriterion("cover_image_path >", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathGreaterThanOrEqualTo(String value) {
            addCriterion("cover_image_path >=", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathLessThan(String value) {
            addCriterion("cover_image_path <", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathLessThanOrEqualTo(String value) {
            addCriterion("cover_image_path <=", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathLike(String value) {
            addCriterion("cover_image_path like", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathNotLike(String value) {
            addCriterion("cover_image_path not like", value, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathIn(List<String> values) {
            addCriterion("cover_image_path in", values, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathNotIn(List<String> values) {
            addCriterion("cover_image_path not in", values, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathBetween(String value1, String value2) {
            addCriterion("cover_image_path between", value1, value2, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andCoverImagePathNotBetween(String value1, String value2) {
            addCriterion("cover_image_path not between", value1, value2, "coverImagePath");
            return (Criteria) this;
        }

        public Criteria andPlayCountIsNull() {
            addCriterion("play_count is null");
            return (Criteria) this;
        }

        public Criteria andPlayCountIsNotNull() {
            addCriterion("play_count is not null");
            return (Criteria) this;
        }

        public Criteria andPlayCountEqualTo(Integer value) {
            addCriterion("play_count =", value, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountNotEqualTo(Integer value) {
            addCriterion("play_count <>", value, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountGreaterThan(Integer value) {
            addCriterion("play_count >", value, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("play_count >=", value, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountLessThan(Integer value) {
            addCriterion("play_count <", value, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountLessThanOrEqualTo(Integer value) {
            addCriterion("play_count <=", value, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountIn(List<Integer> values) {
            addCriterion("play_count in", values, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountNotIn(List<Integer> values) {
            addCriterion("play_count not in", values, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountBetween(Integer value1, Integer value2) {
            addCriterion("play_count between", value1, value2, "playCount");
            return (Criteria) this;
        }

        public Criteria andPlayCountNotBetween(Integer value1, Integer value2) {
            addCriterion("play_count not between", value1, value2, "playCount");
            return (Criteria) this;
        }

        public Criteria andLikesIsNull() {
            addCriterion("likes is null");
            return (Criteria) this;
        }

        public Criteria andLikesIsNotNull() {
            addCriterion("likes is not null");
            return (Criteria) this;
        }

        public Criteria andLikesEqualTo(Integer value) {
            addCriterion("likes =", value, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesNotEqualTo(Integer value) {
            addCriterion("likes <>", value, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesGreaterThan(Integer value) {
            addCriterion("likes >", value, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesGreaterThanOrEqualTo(Integer value) {
            addCriterion("likes >=", value, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesLessThan(Integer value) {
            addCriterion("likes <", value, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesLessThanOrEqualTo(Integer value) {
            addCriterion("likes <=", value, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesIn(List<Integer> values) {
            addCriterion("likes in", values, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesNotIn(List<Integer> values) {
            addCriterion("likes not in", values, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesBetween(Integer value1, Integer value2) {
            addCriterion("likes between", value1, value2, "likes");
            return (Criteria) this;
        }

        public Criteria andLikesNotBetween(Integer value1, Integer value2) {
            addCriterion("likes not between", value1, value2, "likes");
            return (Criteria) this;
        }

        public Criteria andDislikesIsNull() {
            addCriterion("dislikes is null");
            return (Criteria) this;
        }

        public Criteria andDislikesIsNotNull() {
            addCriterion("dislikes is not null");
            return (Criteria) this;
        }

        public Criteria andDislikesEqualTo(Integer value) {
            addCriterion("dislikes =", value, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesNotEqualTo(Integer value) {
            addCriterion("dislikes <>", value, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesGreaterThan(Integer value) {
            addCriterion("dislikes >", value, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesGreaterThanOrEqualTo(Integer value) {
            addCriterion("dislikes >=", value, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesLessThan(Integer value) {
            addCriterion("dislikes <", value, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesLessThanOrEqualTo(Integer value) {
            addCriterion("dislikes <=", value, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesIn(List<Integer> values) {
            addCriterion("dislikes in", values, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesNotIn(List<Integer> values) {
            addCriterion("dislikes not in", values, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesBetween(Integer value1, Integer value2) {
            addCriterion("dislikes between", value1, value2, "dislikes");
            return (Criteria) this;
        }

        public Criteria andDislikesNotBetween(Integer value1, Integer value2) {
            addCriterion("dislikes not between", value1, value2, "dislikes");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNull() {
            addCriterion("category_id is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNotNull() {
            addCriterion("category_id is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdEqualTo(String value) {
            addCriterion("category_id =", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotEqualTo(String value) {
            addCriterion("category_id <>", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThan(String value) {
            addCriterion("category_id >", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThanOrEqualTo(String value) {
            addCriterion("category_id >=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThan(String value) {
            addCriterion("category_id <", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThanOrEqualTo(String value) {
            addCriterion("category_id <=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLike(String value) {
            addCriterion("category_id like", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotLike(String value) {
            addCriterion("category_id not like", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIn(List<String> values) {
            addCriterion("category_id in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotIn(List<String> values) {
            addCriterion("category_id not in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdBetween(String value1, String value2) {
            addCriterion("category_id between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotBetween(String value1, String value2) {
            addCriterion("category_id not between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedIsNull() {
            addCriterion("is_featured is null");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedIsNotNull() {
            addCriterion("is_featured is not null");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedEqualTo(Boolean value) {
            addCriterion("is_featured =", value, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedNotEqualTo(Boolean value) {
            addCriterion("is_featured <>", value, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedGreaterThan(Boolean value) {
            addCriterion("is_featured >", value, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_featured >=", value, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedLessThan(Boolean value) {
            addCriterion("is_featured <", value, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedLessThanOrEqualTo(Boolean value) {
            addCriterion("is_featured <=", value, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedIn(List<Boolean> values) {
            addCriterion("is_featured in", values, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedNotIn(List<Boolean> values) {
            addCriterion("is_featured not in", values, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedBetween(Boolean value1, Boolean value2) {
            addCriterion("is_featured between", value1, value2, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andIsFeaturedNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_featured not between", value1, value2, "isFeatured");
            return (Criteria) this;
        }

        public Criteria andSortOrderIsNull() {
            addCriterion("sort_order is null");
            return (Criteria) this;
        }

        public Criteria andSortOrderIsNotNull() {
            addCriterion("sort_order is not null");
            return (Criteria) this;
        }

        public Criteria andSortOrderEqualTo(Integer value) {
            addCriterion("sort_order =", value, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderNotEqualTo(Integer value) {
            addCriterion("sort_order <>", value, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderGreaterThan(Integer value) {
            addCriterion("sort_order >", value, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderGreaterThanOrEqualTo(Integer value) {
            addCriterion("sort_order >=", value, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderLessThan(Integer value) {
            addCriterion("sort_order <", value, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderLessThanOrEqualTo(Integer value) {
            addCriterion("sort_order <=", value, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderIn(List<Integer> values) {
            addCriterion("sort_order in", values, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderNotIn(List<Integer> values) {
            addCriterion("sort_order not in", values, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderBetween(Integer value1, Integer value2) {
            addCriterion("sort_order between", value1, value2, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andSortOrderNotBetween(Integer value1, Integer value2) {
            addCriterion("sort_order not between", value1, value2, "sortOrder");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleIsNull() {
            addCriterion("pinyin_title is null");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleIsNotNull() {
            addCriterion("pinyin_title is not null");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleEqualTo(String value) {
            addCriterion("pinyin_title =", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleNotEqualTo(String value) {
            addCriterion("pinyin_title <>", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleGreaterThan(String value) {
            addCriterion("pinyin_title >", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleGreaterThanOrEqualTo(String value) {
            addCriterion("pinyin_title >=", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleLessThan(String value) {
            addCriterion("pinyin_title <", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleLessThanOrEqualTo(String value) {
            addCriterion("pinyin_title <=", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleLike(String value) {
            addCriterion("pinyin_title like", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleNotLike(String value) {
            addCriterion("pinyin_title not like", value, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleIn(List<String> values) {
            addCriterion("pinyin_title in", values, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleNotIn(List<String> values) {
            addCriterion("pinyin_title not in", values, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleBetween(String value1, String value2) {
            addCriterion("pinyin_title between", value1, value2, "pinyinTitle");
            return (Criteria) this;
        }

        public Criteria andPinyinTitleNotBetween(String value1, String value2) {
            addCriterion("pinyin_title not between", value1, value2, "pinyinTitle");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}